package com.cata.mall.service;

import com.cata.mall.model.UmsAdmin;
import com.cata.mall.model.UmsResource;

import java.util.List;

/**
 * @作者: Tao
 * @日期: 2025/10/11
 * @时间: 15:38
 * @描述: 后台用户缓存管理Service<pre>
 *     主要职责
 *      1.缓存管理
 *          管理后台用户信息缓存(UmsAdmin)
 *          管理后台用户资源列表缓存(List<UmsResource>)
 *      2.缓存操作
 *          getAdmin - 获取缓存的后台用户信息
 *          setAdmin - 设置后台用户信息缓存
 *          getResourceList - 获取缓存的用户资源列表
 *          setResourceList - 设置用户资源列表缓存
 *      3.缓存删除
 *          delAdmin - 删除指定用户的后台用户缓存
 *          delResourceList - 删除指定用户的资源列表缓存
 *          delResourceListByRole - 根据角色ID删除相关用户的资源缓存
 *          delResourceListByRoleIds - 根据角色ID列表删除相关用户的资源缓存
 *          delResourceListByResource - 根据资源ID删除相关用户的资源缓存
 */
public interface UmsAdminCacheService {

    /**
     * 删除后台用户缓存
     */
    void delAdmin(Long adminId);

    /**
     * 删除后台用户资源列表缓存
     */
    void delResourceList(Long adminId);

    /**
     * 当角色相关资源信息改变时删除相关后台用户缓存
     */
    void delResourceListByRole(Long roleId);

    /**
     * 当角色相关资源信息改变时删除相关后台用户缓存
     */
    void delResourceListByRoleIds(List<Long> roleIds);

    /**
     * 当资源信息改变时，删除资源相关后台用户缓存
     */
    void delResourceListByResource(Long resourceId);

    /**
     * 获取缓存后台用户信息
     */
    UmsAdmin getAdmin(String username);

    /**
     * 设置缓存后台用户信息
     */
    void setAdmin(UmsAdmin admin);

    /**
     * 获取缓存后台用户资源列表
     */
    List<UmsResource> getResourceList(Long adminId);

    /**
     * 设置缓存后台用户资源列表
     */
    void setResourceList(Long adminId, List<UmsResource> resourceList);
}
